package com.ruoyi.develop.projectBaseInfo.service;

import java.util.List;
import java.util.Map;

import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.SysDictData;
import com.ruoyi.develop.projectBaseInfo.domain.ProjectBaseInfo;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 项目基础信息管理Service接口
 * @author qh
 * @date 2023-01-10
 */
public interface IProjectBaseInfoService {
    /**
     * 查询项目基础信息管理
     * @param id 项目基础信息管理主键
     * @return 项目基础信息管理
     */
    public ProjectBaseInfo selectById(String id);

    public void updateStatus(String status,String id);

    public ProjectBaseInfo listCount();

    public ProjectBaseInfo listMoney();

    void exportPro(HttpServletRequest request, HttpServletResponse response, ProjectBaseInfo projectBaseInfo);

    /**
     * 查询项目基础信息管理列表
     * @param entity 项目基础信息管理
     * @return 项目基础信息管理集合
     */
    public List<ProjectBaseInfo> selectList(ProjectBaseInfo entity);

    public List<ProjectBaseInfo> listNotTiejian(ProjectBaseInfo entity);

    List<ProjectBaseInfo> listNotAllKp(ProjectBaseInfo entity);

    List<ProjectBaseInfo> listByAreaGroup(ProjectBaseInfo entity);

    List<ProjectBaseInfo> listByStatusGroup(ProjectBaseInfo entity);

    List<ProjectBaseInfo> listBySourceGroup(ProjectBaseInfo entity);

    List<ProjectBaseInfo> listByYearGroup(ProjectBaseInfo entity);

    public List<ProjectBaseInfo> selectListNoScope(ProjectBaseInfo entity);

    /**
     * 新增项目基础信息管理
     * @param entity 项目基础信息管理
     * @return 结果
     */
    public int insert(ProjectBaseInfo entity);

    public String checkCodeUnique(String code);
    /**
     * 修改项目基础信息管理
     * @param entity 项目基础信息管理
     * @return 结果
     */
    public int update(ProjectBaseInfo entity);

    public int updateBackMoney(ProjectBaseInfo entity);
    /**
     * 批量删除项目基础信息管理
     * @param ids 需要删除的项目基础信息管理主键集合
     * @return 结果
     */
    public int deleteByIds(String[] ids);

    /**
     * 删除项目基础信息管理信息
     * @param id 项目基础信息管理主键
     * @return 结果
     */
    public int deleteById(String id);

    List<SysDictData> selectAllProject(ProjectBaseInfo param);

    AjaxResult refreshProfit(ProjectBaseInfo projectBaseInfo);

    Map<String, Object> getExportData(String id);

    void updateProjectTaxInfo(String projectId);


    public Map<String,Object> importData(ProjectBaseInfo entity,MultipartFile file);

    ProjectBaseInfo selectByCode(String code);

    Map<String, Object> importOrderAndGoodsData(ProjectBaseInfo entity, MultipartFile file);

    Map<String, Object> imporGoodsChuan(ProjectBaseInfo entity, MultipartFile file);

    Map<String, Object> importIronOrderData(ProjectBaseInfo entity, MultipartFile file);
    Map<String, Object> importOrderNoGoods(ProjectBaseInfo entity, MultipartFile file);
    Map<String, Object> importOrderForIronDetail(ProjectBaseInfo entity, MultipartFile file);


}
